{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Variational Quantum Deflation (VQD) Algorithm \n",
    "\n",
    "This notebook demostrates how to use Qiskit's implementation of the [Variational Quantum Deflation (VQD)](https://qiskit.org/documentation/stubs/qiskit.algorithms.eigensolvers.VQD.html) algorithm for computing higher energy states of a Hamiltonian, as introduced in this [reference paper](https://arxiv.org/abs/1805.08138). "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction\n",
    "\n",
    "VQD is a quantum algorithm that uses a variational technique to find the *k* eigenvalues of the Hamiltonian *H* of a given system.\n",
    "    \n",
    "The algorithm computes excited state energies of generalized hamiltonians by optimizing over a modified cost function. Each successive eigenvalue is calculated iteratively by introducing an overlap term with all the previously computed eigenstates that must be minimized. This ensures that higher energy eigenstates are found."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Complete working example for VQD"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The first step of the VQD workflow is to create a qubit operator, ansatz and optimizer. For this example, you can use the H2 molecule, which should already look familiar if you have completed the previous VQE tutorials:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qiskit.quantum_info import SparsePauliOp\n",
    "\n",
    "H2_op = SparsePauliOp.from_list(\n",
    "    [\n",
    "        (\"II\", -1.052373245772859),\n",
    "        (\"IZ\", 0.39793742484318045),\n",
    "        (\"ZI\", -0.39793742484318045),\n",
    "        (\"ZZ\", -0.01128010425623538),\n",
    "        (\"XX\", 0.18093119978423156),\n",
    "    ]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can set up, for example, a `TwoLocal` ansatz with two qubits, and choose `SLSQP` as the optimization method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 538.128x200.667 with 1 Axes>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from qiskit.circuit.library import TwoLocal\n",
    "from qiskit.algorithms.optimizers import SLSQP\n",
    "\n",
    "ansatz = TwoLocal(2, rotation_blocks=[\"ry\", \"rz\"], entanglement_blocks=\"cz\", reps=1)\n",
    "\n",
    "optimizer = SLSQP()\n",
    "ansatz.decompose().draw('mpl')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The next step of the workflow is to define the required primitives for running `VQD`. This algorithm requires two different primitive instances: one `Estimator` for computing the expectation values for the \"VQE part\" of the algorithm, and one `Sampler`. The sampler will be passed along to the `StateFidelity` subroutine that will be used to compute the cost for higher energy states. There are several methods that you can use to compute state fidelities, but to keep things simple, you can use the `ComputeUncompute` method already available in `qiskit.algorithm.state_fidelities`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qiskit.primitives import Sampler, Estimator\n",
    "from qiskit.algorithms.state_fidelities import ComputeUncompute\n",
    "\n",
    "estimator = Estimator()\n",
    "sampler = Sampler()\n",
    "fidelity = ComputeUncompute(sampler)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In order to set up the VQD algorithm, it is important to define two additional inputs: the number of energy states to compute (`k`) and the `betas` defined in the original VQD paper. In this example, the number of states (`k`) will be set to three, which indicates that two excited states will be computed in addition to the ground state.\n",
    "\n",
    "The `betas` balance the contribution of each overlap term to the cost function, and they are an optional argument in the `VQD` construction. If not set by the user, they can be autoevaluated for input operators of type `SparsePauliOp`. Please note that if you want to set your own `betas`, you should provide a list of values of length `k`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "k = 3\n",
    "betas = [33, 33, 33]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You are almost ready to run the VQD algorithm, but let's define a callback first to store intermediate values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "counts = []\n",
    "values = []\n",
    "steps = []\n",
    "\n",
    "def callback(eval_count, params, value, meta, step):\n",
    "    counts.append(eval_count)\n",
    "    values.append(value)\n",
    "    steps.append(step)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can finally instantiate `VQD` and compute the eigenvalues for the chosen operator."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qiskit.algorithms.eigensolvers import VQD\n",
    "\n",
    "\n",
    "vqd = VQD(estimator, fidelity, ansatz, optimizer, k=k, betas=betas, callback=callback)\n",
    "result = vqd.compute_eigenvalues(operator = H2_op)\n",
    "vqd_values = result.eigenvalues\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can see the three state energies as part of the `VQD` result:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-1.85727493 -1.24458457 -0.88272202]\n"
     ]
    }
   ],
   "source": [
    "print(vqd_values.real)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And we can use the values stored by the callback to plot the energy convergence for each state:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+QAAAK9CAYAAACtq6aaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACyi0lEQVR4nOzdeXwU9f3H8fdsbgiEm3CEGw/kUKniheIJ3lqst4gHVSu1SltbbL1taa1Fa71qq6BWf1ovtF6otKIi3iIeFRFBFLkhhATItfP7YzOT2SvZJLszw87r6SOSbDY7k80e85nP5/v5GKZpmgIAAAAAAK4Keb0DAAAAAAAEEQE5AAAAAAAeICAHAAAAAMADBOQAAAAAAHiAgBwAAAAAAA8QkAMAAAAA4AECcgAAAAAAPEBADgAAAACABwjIAQAAAADwAAE5AAAB8tBDD2m33XZTXl6eOnXq5PXupN2KFStkGIZuueUWr3clcKz7fvbs2V7vCgDsNAjIAaAFZs+eLcMwkn68/fbbXu8ikNQXX3yhyZMna/Dgwfr73/+ue++91+tdggfuuusu3wfNL7zwgq677ro23cbvf/97zZkzJy37AwCZkuv1DgDAzuiGG27QwIED4y4fMmSIB3sDpOa1115TOBzWX/7yFx6rAXbXXXepW7dumjx5ste7ktQLL7ygO++8s01B+e9//3udcsopOumkk9K2XwCQbgTkANAKRx99tH7wgx94vRuqqqpS+/btvd6Nnd6OHTuUn5+vUCi7C8fWrVsnSWktVd+2bZvatWuXttsDACBIsvvIAwA84lzHeu+992rw4MEqKCjQPvvso/feey/u+l988YVOOeUUdenSRYWFhfrBD36gZ599Nuo6Vrn8/Pnz9ZOf/EQ9evRQ37597e/feeedGjRokIqKirTvvvvqjTfe0Lhx4zRu3DhJUmVlpdq3b6+f/exncdv/7rvvlJOToxkzZjT5e1nZ1REjRqiwsFDdu3fXhAkT9P7779vXqaur04033mj/zgMGDNBVV12l6urqqNsaMGCAjjvuOL355pvad999VVhYqEGDBunBBx+0r/P+++/LMAw98MADcfsyd+5cGYah5557zr5s1apVOv/889WzZ08VFBRojz320P333x/1c6+99poMw9Cjjz6q3/72t+rTp4/atWuniooKSdLjjz+uYcOGqbCwUMOHD9fTTz+tyZMna8CAAXH3xW233aY99thDhYWF6tmzpy666CJt3ry5xb+npby8XFdccYUGDBiggoIC9e3bV5MmTdKGDRvs61RXV+vaa6/VkCFDVFBQoLKyMl155ZVx92+sAQMG6Nprr5Ukde/eXYZhRGUf77rrLu2xxx4qKChQ7969demll6q8vDzqNsaNG6fhw4frgw8+0MEHH6x27drpqquuanK7qTy2N23apF/84hcaMWKEiouL1bFjRx199NH6+OOP425vx44duu6667TLLruosLBQvXr10g9/+EMtW7Ys7rqpPPcSSeXvsG7dOl1wwQXq2bOnCgsLNWrUqLjHqfN1wHp+tmvXTkcddZS+/fZbmaapG2+8UX379lVRUZFOPPFEbdq0Keo2rMfPyy+/rD333FOFhYUaNmyYnnrqqajrXXfddTIMI+53sV43VqxYYd/eZ599pvnz59tLbazXCOt3v/zyy1VWVqaCggINGTJEf/zjHxUOh+Puo8mTJ6ukpESdOnXSueeeG/d4Saa2tlbXX3+9hg4dqsLCQnXt2lUHHXSQXnnlFUnS5MmTdeedd0pS1JIgyy233KIDDjhAXbt2VVFRkUaPHq0nnngiahuGYaiqqkoPPPCA/fPOioBUXisAwBUmACBls2bNMiWZr776qrl+/fqojw0bNtjXW758uSnJ3GuvvcwhQ4aYf/zjH82bb77Z7Natm9m3b1+zpqbGvu6nn35qlpSUmMOGDTP/+Mc/mnfccYd58MEHm4ZhmE899VTctocNG2Yecsgh5l//+lfzD3/4g2mapnnXXXeZksyxY8eat99+uzlt2jSzS5cu5uDBg81DDjnEvo2zzjrL7Nmzp1lXVxf1e918882mYRjmN9980+TvP3nyZFOSefTRR5u33Xabecstt5gnnnii+de//tW+zrnnnmtKMk855RTzzjvvNCdNmmRKMk866aSo2+rfv7+56667mj179jSvuuoq84477jD33ntv0zAM89NPP7WvN2jQIPOYY46J25fzzjvP7Ny5s31frlmzxuzbt69ZVlZm3nDDDebdd99tnnDCCaYk89Zbb7V/7r///a99P+65557mzJkzzRkzZphVVVXmc889ZxqGYY4cOdKcOXOmefXVV5udO3c2hw8fbvbv3z9q+xdeeKGZm5trTpkyxbznnnvMX/3qV2b79u3NffbZJ+rvm+rvuXXrVnP48OFmTk6OOWXKFPPuu+82b7zxRnOfffYxP/roI9M0TbO+vt486qijzHbt2pmXX365+be//c2cOnWqmZuba5544olN/u2efvpp8+STTzYlmXfffbf50EMPmR9//LFpmqZ57bXXmpLMI444wvzrX/9qTp061czJyYn7XQ455BCztLTU7N69u/nTn/7U/Nvf/mbOmTMn6TZTfWy/99575uDBg81f//rX5t/+9jfzhhtuMPv06WOWlJSYq1atsq9XV1dnHn744aYk8/TTTzfvuOMOc8aMGeZhhx1m70dLnnuJpPJ32LZtm7n77rubeXl55hVXXGHefvvt5tixY01J5m233WbflrUve+65pzls2DBz5syZ5m9/+1szPz/f3G+//cyrrrrKPOCAA8zbb7/dvOyyy0zDMMzzzjsvan/69+9v7rLLLmanTp3MX//61+bMmTPNESNGmKFQyHz55Zft61l/w1jW68by5cvtx0Hfvn3N3XbbzXzooYfMhx56yL6dqqoqc+TIkWbXrl3Nq666yrznnnvMSZMmmYZhmD/72c/s2wyHw+bBBx9shkIh8yc/+Yn517/+1TzssMPMkSNHmpLMWbNmNXkfX3XVVaZhGOaUKVPMv//97+af//xn84wzzrBfz9566y3zyCOPNCXZ+/jQQw/ZP9+3b1/zJz/5iXnHHXeYM2fONPfdd19Tkvncc8/Z13nooYfMgoICc+zYsfbPv/XWW6Zppv5aAQBuICAHgBawDm4TfRQUFNjXsw7Eu3btam7atMm+/JlnnjElmf/+97/tyw4//HBzxIgR5o4dO+zLwuGwecABB5hDhw6N2/ZBBx0UFVBXV1ebXbt2NffZZx+ztrbWvnz27NmmpKiAfO7cuaYk88UXX4z6vUaOHBl1vUT+85//mJLMyy67LO574XDYNE3TXLRokSnJvPDCC6O+/4tf/MKUZP7nP/+xL+vfv78pyXz99dfty9atW2cWFBSYP//5z+3Lpk+fbubl5UXdj9XV1WanTp3M888/377sggsuMHv16hV1YsQ0TfP00083S0pKzG3btpmm2RiQDxo0yL7MMmLECLNv377m1q1b7ctee+01U1JUQP7GG2+YksyHH3446udfeumluMtT/T2vueYaU1JUoGqx7t+HHnrIDIVC5htvvBH1/XvuuceUZC5YsCDuZ52soG39+vVR+5Kfn28eddRRZn19vX35HXfcYUoy77//fvuyQw45xJRk3nPPPU1ux5LqY3vHjh1R2zbNyHOooKDAvOGGG+zL7r//flOSOXPmzLhtWfdRS557iaTyd7jttttMSeY///lP+3s1NTXm/vvvbxYXF5sVFRVR+9K9e3ezvLzcvu706dNNSeaoUaOinrNnnHGGmZ+fH3V/WY+fJ5980r5sy5YtZq9evcy99trLvizVgNw0TXOPPfZI+Hy/8cYbzfbt25tffvll1OW//vWvzZycHHPlypWmaZrmnDlzTEnmzTffbF+nrq7OPinRXEA+atQo89hjj23yOpdeemnC38c0zbjnbU1NjTl8+HDzsMMOi7q8ffv25rnnnhv386m+VgCAGyhZB4BWuPPOO/XKK69Efbz44otx1zvttNPUuXNn++uxY8dKkr7++mtJkVLd//znPzr11FO1detWbdiwQRs2bNDGjRs1fvx4LV26VKtWrYq6zSlTpignJ8f++v3339fGjRs1ZcoU5eY2tgY566yzorYtSUcccYR69+6thx9+2L7s008/1eLFi3X22Wc3+Ts/+eSTMgzDLnt2sspJX3jhBUnStGnTor7/85//XJL0/PPPR10+bNgw+z6RIqXUu+66q33/SJH7sLa2NqpE9+WXX1Z5eblOO+00SZJpmnryySd1/PHHyzRN+37csGGDxo8fry1btujDDz+M2va5556roqIi++vvv/9en3zyiSZNmqTi4mL78kMOOUQjRoyI+tnHH39cJSUlOvLII6O2NXr0aBUXF+u///1vi3/PJ598UqNGjdLJJ5+sWNb9+/jjj2v33XfXbrvtFrXdww47TJLitpuKV199VTU1Nbr88suj1tBPmTJFHTt2jPubFRQU6Lzzzmv2dlvy2C4oKLC3XV9fr40bN6q4uFi77rpr1N/tySefVLdu3fTTn/40bnux5drNPfeSSeXv8MILL6i0tFRnnHGG/b28vDxddtllqqys1Pz586N+7kc/+pFKSkrsr8eMGSNJOvvss6Oes2PGjFFNTU3cc753795R+9OxY0dNmjRJH330kdasWdPk79MSjz/+uMaOHavOnTtHPb6OOOII1dfX6/XXX7d//9zcXF1yySX2z+bk5CT8uyTSqVMnffbZZ1q6dGmr9tP5vN28ebO2bNmisWPHxj3HE2nNawUAZBJN3QCgFfbdd9+Umrr169cv6msrQLDWGX/11VcyTVNXX321rr766oS3sW7dOvXp08f+Ora7+zfffCMpvsN7bm5u3LrnUCiks846S3fffbfdjOvhhx9WYWGhfvSjHzX5uyxbtky9e/dWly5dkl7nm2++USgUituX0tJSderUyd5XS+z9I0XuI+c67FGjRmm33XbTY489pgsuuECS9Nhjj6lbt252ILp+/XqVl5fr3nvvTTrKy2poZkn1frQucx6kL126VFu2bFGPHj1S2lYqv+eyZcs0ceLEhLfn3O7//vc/de/ePaXtpsL6vXfdddeoy/Pz8zVo0KC4v1mfPn2Un5/f7O225LFt9Sa46667tHz5ctXX19vX6dq1q/35smXLtOuuu0YFsck099xLJpW/wzfffKOhQ4fGNQHcfffd7e83tS9WcF5WVpbw8th9HDJkSNwJh1122UVSZJ16aWlpk/ubqqVLl2rx4sXNPr6++eYb9erVK+rElRT/GErmhhtu0IknnqhddtlFw4cP14QJE3TOOedo5MiRKf38c889p5tuukmLFi2K6p2QaA19rNa8VgBAJhGQA0AGOTPZTqZpSpLdKOkXv/iFxo8fn/C6sQGiMzvUGpMmTdKf/vQnzZkzR2eccYYeeeQRHXfccVEZvLZK5cBYav7+sZx22mn63e9+pw0bNqhDhw569tlndcYZZ9iBmXU/nn322Tr33HMT3mbswX5b7sdwOKwePXpEVRo4xQY0qf6eqWx3xIgRmjlzZsLvxwZ4mZDq/daSx/bvf/97XX311Tr//PN14403qkuXLgqFQrr88svjmomlKl33eTok25d07mOy55zz5EZzwuGwjjzySF155ZUJv2+dBGirgw8+WMuWLdMzzzyjl19+Wf/4xz9066236p577tGFF17Y5M++8cYbOuGEE3TwwQfrrrvuUq9evZSXl6dZs2bpkUceaXbbrXmtAIBMIiAHAA8NGjRIUqTc9YgjjmjVbfTv319SJCN56KGH2pfX1dVpxYoVcQeXw4cP11577aWHH35Yffv21cqVK/XXv/612e0MHjxYc+fO1aZNm5Jmyfv3769wOKylS5fa2UJJWrt2rcrLy+19banTTjtN119/vZ588kn17NlTFRUVOv300+3vd+/eXR06dFB9fX1a7sdYsZcNHjxYr776qg488MA2nyBx3uann37a7HU+/vhjHX744Smf9GiO9XsvWbLEfjxKUk1NjZYvX97q+7Mlj+0nnnhChx56qO67776oy8vLy9WtWzf768GDB+udd95RbW2t8vLyWrVfzUnl79C/f38tXrxY4XA4Kkv+xRdf2N9PJ6vawPk3//LLLyXJroKxKgDKy8ujxtrFZuul5MH74MGDVVlZ2ezfq3///po3b54qKyujsuRLlixJ6feRpC5duui8887Teeedp8rKSh188MG67rrr7IA82T4++eSTKiws1Ny5c1VQUGBfPmvWrLjrJrqNdLxWAEA6sYYcADzUo0cPjRs3Tn/729+0evXquO+vX7++2dv4wQ9+oK5du+rvf/+76urq7MsffvjhpOW555xzjl5++WXddttt6tq1q44++uhmtzNx4kSZpqnrr78+7ntWRu+YY46RJN12221R37cyuscee2yz20lk991314gRI/TYY4/pscceU69evXTwwQfb38/JydHEiRP15JNPJgymUrkfe/fureHDh+vBBx9UZWWlffn8+fP1ySefRF331FNPVX19vW688ca426mrq0t5/JPTxIkT9fHHH+vpp5+O+551/5566qlatWqV/v73v8ddZ/v27aqqqmrxdo844gjl5+fr9ttvj8rM3nfffdqyZUur/2YteWzn5OTEZYUff/zxuLXUEydO1IYNG3THHXfE3V66Mt+p/B2OOeYYrVmzRo899pj9vbq6Ov31r39VcXGxDjnkkLTsi+X777+P2p+Kigo9+OCD2nPPPe1y9cGDB0uSvc5bkj32K1b79u0TPkZPPfVULVy4UHPnzo37Xnl5uf36cswxx6iurk533323/f36+vqUTuxJ0saNG6O+Li4u1pAhQ6LKz9u3b29v1yknJ0eGYURl/lesWKE5c+bEbSfR75mO1woASCcy5ADQCi+++KKdDXM64IADorKMqbjzzjt10EEHacSIEZoyZYoGDRqktWvXauHChfruu+8SzmJ2ys/P13XXXaef/vSnOuyww3TqqadqxYoVmj17tgYPHpwwS3TmmWfqyiuv1NNPP61LLrkkpWzjoYceqnPOOUe33367li5dqgkTJigcDuuNN97QoYceqqlTp2rUqFE699xzde+996q8vFyHHHKI3n33XT3wwAM66aSTojL4LXXaaafpmmuuUWFhoS644IK49bt/+MMf9N///ldjxozRlClTNGzYMG3atEkffvihXn311bj5zon8/ve/14knnqgDDzxQ5513njZv3qw77rhDw4cPjwrSDznkEF100UWaMWOGFi1apKOOOkp5eXlaunSpHn/8cf3lL3/RKaec0qLf75e//KWeeOIJ/ehHP9L555+v0aNHa9OmTXr22Wd1zz33aNSoUTrnnHP0r3/9SxdffLH++9//6sADD1R9fb2++OIL/etf/9LcuXNT6m3g1L17d02fPl3XX3+9JkyYoBNOOEFLlizRXXfdpX322afZZn9NSfWxfdxxx+mGG27QeeedpwMOOECffPKJHn744bjn0qRJk/Tggw9q2rRpevfddzV27FhVVVXp1Vdf1U9+8hOdeOKJrd5XSyp/hx//+Mf629/+psmTJ+uDDz7QgAED9MQTT2jBggW67bbb1KFDhzbvh9Muu+yiCy64QO+995569uyp+++/X2vXro3KCh911FHq16+fLrjgAv3yl79UTk6O7r//fnXv3l0rV66Mur3Ro0fr7rvv1k033aQhQ4aoR48eOuyww/TLX/5Szz77rI477jhNnjxZo0ePVlVVlT755BM98cQTWrFihbp166bjjz9eBx54oH79619rxYoV9lz0LVu2pPT7DBs2TOPGjdPo0aPVpUsXvf/++3riiSc0derUqH2UpMsuu0zjx49XTk6OTj/9dB177LGaOXOmJkyYoDPPPFPr1q3TnXfeqSFDhmjx4sVxv+err76qmTNnqnfv3ho4cKDGjBmTltcKAEgbl7u6A8BOramxZ3KM+7HGHf3pT3+Kuw1J5rXXXht12bJly8xJkyaZpaWlZl5entmnTx/zuOOOM5944om4bb/33nsJ9+322283+/fvbxYUFJj77ruvuWDBAnP06NHmhAkTEl7/mGOOMSXZs3lTUVdXZ/7pT38yd9ttNzM/P9/s3r27efTRR5sffPCBfZ3a2lrz+uuvNwcOHGjm5eWZZWVl5vTp06NGOZlmZJxTotFHhxxySMKRTEuXLrXv5zfffDPh/q1du9a89NJLzbKyMjMvL88sLS01Dz/8cPPee++1r2ONPXv88ccT3sajjz5q7rbbbmZBQYE5fPhw89lnnzUnTpxo7rbbbnHXvffee83Ro0ebRUVFZocOHcwRI0aYV155pfn999+36vfcuHGjOXXqVLNPnz5mfn6+2bdvX/Pcc8+NGs9UU1Nj/vGPfzT32GMPs6CgwOzcubM5evRo8/rrrze3bNmS8HeyJBp7ZrnjjjvM3XbbzczLyzN79uxpXnLJJebmzZvj9nmPPfZochuxUnls79ixw/z5z39u9urVyywqKjIPPPBAc+HChQnvo23btpm/+c1v7MdXaWmpecopp5jLli0zTbPlz71EUvk7rF271jzvvPPMbt26mfn5+eaIESPixn0l25dkj8FEz3Hr8TN37lxz5MiRZkFBgbnbbrslfPx+8MEH5pgxY8z8/HyzX79+5syZMxOOPVuzZo157LHHmh06dIgbjbh161Zz+vTp5pAhQ8z8/HyzW7du5gEHHGDecsstUTPcN27caJ5zzjlmx44dzZKSEvOcc84xP/roo5TGnt10003mvvvua3bq1MksKioyd9ttN/N3v/td1O3X1dWZP/3pT83u3bubhmFEjUC77777zKFDh9r3xaxZsxKOffviiy/Mgw8+2CwqKjIlRY1AS+W1AgDcYJimB91NAAAZFw6H1b17d/3whz9MWOJ88skn65NPPkm4ZhrR9txzT3Xv3l2vvPKK17uCgBkwYICGDx+u5557zutdAQBkAGvIASAL7NixI24N7YMPPqhNmzZp3LhxcddfvXq1nn/+eZ1zzjku7eHOoba2NmodviS99tpr+vjjjxPejwAAAG3BGnIAyAJvv/22rrjiCv3oRz9S165d9eGHH+q+++7T8OHDo+aLL1++XAsWLNA//vEP5eXl6aKLLvJwr/1n1apVOuKII3T22Werd+/e+uKLL3TPPfeotLRUF198sde7BwAAsgwBOQBkgQEDBqisrEy33367PZZs0qRJ+sMf/qD8/Hz7evPnz9d5552nfv366YEHHrA7NCOic+fOGj16tP7xj39o/fr1at++vY499lj94Q9/UNeuXb3ePQAAkGVYQw4AAAAAgAdYQw4AAAAAgAcIyAEAAAAA8EDWryEPh8P6/vvv1aFDBxmG4fXuAAAAAACynGma2rp1q3r37q1QKHkePOsD8u+//15lZWVe7wYAAAAAIGC+/fZb9e3bN+n3sz4g79Chg6TIHdGxY0eP9wYAAAAAkO0qKipUVlZmx6PJZH1AbpWpd+zYkYAcAAAAAOCa5pZN09QNAAAAAAAPEJADAAAAAOABAnIAAAAAADyQ9WvIAQAAACCbmKapuro61dfXe70rgZWTk6Pc3Nw2j9YmIAcAAACAnURNTY1Wr16tbdu2eb0rgdeuXTv16tVL+fn5rb4NAnIAAAAA2AmEw2EtX75cOTk56t27t/Lz89ucoUXLmaapmpoarV+/XsuXL9fQoUMVCrVuNTgBOQAAAADsBGpqahQOh1VWVqZ27dp5vTuBVlRUpLy8PH3zzTeqqalRYWFhq26Hpm4AAAAAsBNpbTYW6ZWOvwN/SQAAAAAAPEBADgAAAACABwjIAQAAAADwAAE5AAAAACBj1q9fr0suuUT9+vVTQUGBSktLNX78eC1YsMC+jmEYmjNnTotve8CAAbrtttvSsp+vvfaa9t57bxUUFGjIkCGaPXt2Wm63KXRZBwAAAABkzMSJE1VTU6MHHnhAgwYN0tq1azVv3jxt3LjR612zLV++XMcee6wuvvhiPfzww5o3b54uvPBC9erVS+PHj8/Ydg3TNM2M3boPVFRUqKSkRFu2bFHHjh293h0AAAAAaJUdO3Zo+fLlGjhwoAoLC2WaprbX1nuyL0V5OSnNQC8vL1fnzp312muv6ZBDDkl4nQEDBuibb76xv+7fv79WrFihZcuWadq0aXr77bdVVVWl3XffXTNmzNARRxwhSRo3bpzmz58fdVtWePvmm29q+vTpev/999WtWzedfPLJmjFjhtq3b59wH371q1/p+eef16effmpfdvrpp6u8vFwvvfRSwp+J/Xs4pRqHkiEHAAAAgJ3Q9tp6Dbtmrifb/vyG8WqX33w4WVxcrOLiYs2ZM0f77befCgoK4q7z3nvvqUePHpo1a5YmTJignJwcSVJlZaWOOeYY/e53v1NBQYEefPBBHX/88VqyZIn69eunp556SqNGjdKPf/xjTZkyxb69ZcuWacKECbrpppt0//33a/369Zo6daqmTp2qWbNmJdzPhQsX2oG+Zfz48br88stbcK+0HGvIAQAAAAAZkZubq9mzZ+uBBx5Qp06ddOCBB+qqq67S4sWL7et0795dktSpUyeVlpbaX48aNUoXXXSRhg8frqFDh+rGG2/U4MGD9eyzz0qSunTpopycHHXo0EGlpaUqLS2VJM2YMUNnnXWWLr/8cg0dOlQHHHCAbr/9dj344IPasWNHwv1cs2aNevbsGXVZz549VVFRoe3bt6f9frGQIQcAAACAnVBRXo4+vyFz65ub23aqJk6cqGOPPVZvvPGG3n77bb344ou6+eab9Y9//EOTJ09O+nOVlZW67rrr9Pzzz2v16tWqq6vT9u3btXLlyia39/HHH2vx4sV6+OGH7ctM01Q4HNby5cu1++67p7zvmUZADgAAAAA7IcMwUiob94PCwkIdeeSROvLII3X11Vfrwgsv1LXXXttkQP6LX/xCr7zyim655RYNGTJERUVFOuWUU1RTU9PktiorK3XRRRfpsssui/tev379Ev5MaWmp1q5dG3XZ2rVr1bFjRxUVFTX/C7bSzvHXAwAAAABkjWHDhkWNOcvLy1N9fXSDugULFmjy5Mk6+eSTJUUC7RUrVkRdJz8/P+7n9t57b33++ecaMmRIyvuz//7764UXXoi67JVXXtH++++f8m20BmvIAQAAAAAZsXHjRh122GH65z//qcWLF2v58uV6/PHHdfPNN+vEE0+0rzdgwADNmzdPa9as0ebNmyVJQ4cO1VNPPaVFixbp448/1plnnqlwOBx1+wMGDNDrr7+uVatWacOGDZIiHdPfeustTZ06VYsWLdLSpUv1zDPPaOrUqUn38+KLL9bXX3+tK6+8Ul988YXuuusu/etf/9IVV1yRgXulkacB+d13362RI0eqY8eO6tixo/bff3+9+OKL9vd37NihSy+9VF27dlVxcbEmTpwYV0YAAAAAAPCn4uJijRkzRrfeeqsOPvhgDR8+XFdffbWmTJmiO+64w77en//8Z73yyisqKyvTXnvtJUmaOXOmOnfurAMOOEDHH3+8xo8fr7333jvq9m+44QatWLFCgwcPtpvBjRw5UvPnz9eXX36psWPHaq+99tI111yj3r17J93PgQMH6vnnn9crr7yiUaNG6c9//rP+8Y9/ZHQGueTxHPJ///vfysnJ0dChQ2Waph544AH96U9/0kcffaQ99thDl1xyiZ5//nnNnj1bJSUlmjp1qkKhkBYsWJDyNphDDgAAACAbNDX3Gu5LxxxyTwPyRLp06aI//elPOuWUU9S9e3c98sgjOuWUUyRJX3zxhXbffXctXLhQ++23X0q3R0AOAAAAIBsQkPtLOgJy36whr6+v16OPPqqqqirtv//++uCDD1RbWxs1nH233XZTv379tHDhwqS3U11drYqKiqgPAAAgadsmac2nXu8FAABo4HlA/sknn6i4uFgFBQW6+OKL9fTTT2vYsGFas2aN8vPz1alTp6jr9+zZU2vWrEl6ezNmzFBJSYn9UVZWluHfAACAncTj50r3HCht+trrPQEAAPJBQL7rrrtq0aJFeuedd3TJJZfo3HPP1eeff97q25s+fbq2bNlif3z77bdp3FsAAHZiW1ZF/q1Y7e1+AAAAST6YQ56fn2/Phxs9erTee+89/eUvf9Fpp52mmpoalZeXR2XJ165dq9LS0qS3V1BQoIKCgkzvNgAAOyEz5l8AAOAlzzPkscLhsKqrqzV69Gjl5eVp3rx59veWLFmilStXZnw4OwAAWclsmN3qr36uAAAElqcZ8unTp+voo49Wv379tHXrVj3yyCN67bXXNHfuXJWUlOiCCy7QtGnT1KVLF3Xs2FE//elPtf/++6fcYR0AADhYgbgVmAMAAE95GpCvW7dOkyZN0urVq1VSUqKRI0dq7ty5OvLIIyVJt956q0KhkCZOnKjq6mqNHz9ed911l5e7DADAToySdQAA/MTTgPy+++5r8vuFhYW68847deedd7q0RwAAZDE7Q05ADgCAH/huDTkAAMgQkww5AAB+QkAOAEBgkCEHALhv/fr1uuSSS9SvXz8VFBSotLRU48eP14IFC+zrGIahOXPmtPi2BwwYoNtuu63N+7h69WqdeeaZ2mWXXRQKhXT55Ze3+TZT4fnYMwAA4BK6rAMAPDBx4kTV1NTogQce0KBBg7R27VrNmzdPGzdu9HrXbNXV1erevbt++9vf6tZbb3Vtu2TIAQAICkrWASC7mKZUU+XNR4ond8vLy/XGG2/oj3/8ow499FD1799f++67r6ZPn64TTjhBUiTLLUknn3yyDMOwv162bJlOPPFE9ezZU8XFxdpnn3306quv2rc9btw4ffPNN7riiitkGIYMw7C/9+abb2rs2LEqKipSWVmZLrvsMlVVVSXdzwEDBugvf/mLJk2apJKSkhb+IVqPDDkAAIFByToAZJXabdLve3uz7au+l/LbN3u14uJiFRcXa86cOdpvv/1UUFAQd5333ntPPXr00KxZszRhwgTl5ORIkiorK3XMMcfod7/7nQoKCvTggw/q+OOP15IlS9SvXz899dRTGjVqlH784x9rypQp9u0tW7ZMEyZM0E033aT7779f69ev19SpUzV16lTNmjUrffdBGpAhBwAgKOz54wTkAAB35Obmavbs2XrggQfUqVMnHXjggbrqqqu0ePFi+zrdu3eX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",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "\n",
    "pylab.rcParams[\"figure.figsize\"] = (12, 8)\n",
    "\n",
    "steps = np.asarray(steps)\n",
    "counts = np.asarray(counts)\n",
    "values = np.asarray(values)\n",
    "\n",
    "for i in range(1,4):\n",
    "    _counts = counts[np.where(steps == i)]\n",
    "    _values = values[np.where(steps == i)]\n",
    "    pylab.plot(_counts, _values, label=f\"State {i-1}\")\n",
    "    \n",
    "pylab.xlabel(\"Eval count\")\n",
    "pylab.ylabel(\"Energy\")\n",
    "pylab.title(\"Energy convergence for each computed state\")\n",
    "pylab.legend(loc=\"upper right\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This molecule can be solved exactly using the `NumPyEigensolver` class, which will give a reference value that you can compare with the `VQD` result:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "from qiskit.algorithms.eigensolvers import NumPyEigensolver\n",
    "\n",
    "\n",
    "exact_solver = NumPyEigensolver(k=3)\n",
    "exact_result = exact_solver.compute_eigenvalues(H2_op)\n",
    "ref_values = exact_result.eigenvalues"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see a comparison of the exact result with the previously computed `VQD` eigenvalues:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reference values: [-1.85727503 -1.24458455 -0.88272215]\n",
      "VQD values: [-1.85727493 -1.24458457 -0.88272202]\n"
     ]
    }
   ],
   "source": [
    "print(f\"Reference values: {ref_values}\")\n",
    "print(f\"VQD values: {vqd_values.real}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, the result from VQD matches the values from the exact solution, and extends VQE to also compute excited states. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td><code>qiskit-terra</code></td><td>0.24.1</td></tr><tr><td><code>qiskit-aer</code></td><td>0.12.0</td></tr><tr><td><code>qiskit-ibmq-provider</code></td><td>0.20.2</td></tr><tr><td><code>qiskit</code></td><td>0.43.1</td></tr><tr><th>System information</th></tr><tr><td>Python version</td><td>3.11.3</td></tr><tr><td>Python compiler</td><td>Clang 14.0.0 (clang-1400.0.29.202)</td></tr><tr><td>Python build</td><td>main, Apr  7 2023 20:13:31</td></tr><tr><td>OS</td><td>Darwin</td></tr><tr><td>CPUs</td><td>10</td></tr><tr><td>Memory (Gb)</td><td>32.0</td></tr><tr><td colspan='2'>Fri Jun 09 14:52:12 2023 PDT</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style='width: 100%; background-color:#d5d9e0;padding-left: 10px; padding-bottom: 10px; padding-right: 10px; padding-top: 5px'><h3>This code is a part of Qiskit</h3><p>&copy; Copyright IBM 2017, 2023.</p><p>This code is licensed under the Apache License, Version 2.0. You may<br>obtain a copy of this license in the LICENSE.txt file in the root directory<br> of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.<p>Any modifications or derivative works of this code must retain this<br>copyright notice, and modified files need to carry a notice indicating<br>that they have been altered from the originals.</p></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import qiskit.tools.jupyter\n",
    "%qiskit_version_table\n",
    "%qiskit_copyright"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
